package com.yx.changdao.web.init;

import com.yx.changdao.common.entity.SysPermission;
import com.yx.changdao.common.utils.SpringContextUtils;
import com.yx.changdao.service.SysPermissionService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * 一级菜单的权限初始化
 *
 * @author wangzd zdwang92@aliyun.com
 * @createtime 2020/4/11 9:13
 */
@Component
@Order(4)
public class SysPermissionInit implements CommandLineRunner {

    /**
     * 问题采集
     * <br/>录入上报
     * <br/> 数据查看
     * 问题审批
     * <br/>上报审批
     * <br/>转部门审批
     * <br/>疑难件审批
     * 问题分配
     * <br/>问题分配
     * 问题处理
     * <br/>问题办理
     * <br/>数据查看
     * 结果评价
     * <br/>回访打分
     * <br/> 数据查看
     * 基础数据
     * <br/> 网格管理
     * <br/>房屋管理
     * <br/>居民管理
     * 权限/组织
     * <br/> 权限设置
     * <br/>组织架构
     */
    // 所有一级菜单的权限
    String[] menuPerms = {
            // 问题采集
            "menu:problem:input",
            // 问题审批
            "menu:problem:verify",
            // 问题分配
            "menu:problem:assign",
            // 问题处理
            "menu:problem:process",
            // 结果评价
            "menu:problem:score",
            // 基础数据
            "menu:community",
            // 权限/组织
            "menu:auth:org",
            //新闻管理
            "menu:news",

            "menu:word", "menu:execute:word",
            "menu:overdue",
            "menu:seting",

            "menu:home:execute",
            "menu:home:leader",
            "menu:contact:execute",
            "menu:contact:leader",
            "menu:community:execute",
            "menu:community:leader"

    };
    // 权限描述
    String[] permDescs = {
            "菜单:问题采集", "菜单:问题审批", "菜单:问题分配",
            "菜单:问题处理", "菜单:结果评价", "菜单:基础数据",
            "菜单:权限/组织", "菜单:新闻管理",
            "菜单:交办单/办结单", "菜单:交办单(执行)",
            "菜单:逾期管理", "菜单:系统设置",

            "菜单:首页(执行)",
            "菜单:首页(总控)",
            "菜单:联户组管理(执行)",
            "菜单:联户组管理(总控)",
            "菜单:房屋管理(总控)",
            "菜单:房屋管理(执行)",
    };

    private static final Logger logger = LoggerFactory.getLogger(SysPermissionInit.class);

    @Override
    public void run(String... args) throws Exception {
        logger.debug("-----------一级菜单权限------------");

        SysPermissionService permissionService = SpringContextUtils.getBean(SysPermissionService.class);
// 判断一级菜单的权限，没有的添加上
        for (int i = 0; i < menuPerms.length; i++) {
            SysPermission perm = permissionService.getPermission(menuPerms[i]);
            if (null == perm) {
                permissionService.addPermission(menuPerms[i], permDescs[i]);
            }
        }

    }

}
